package ejb.managerbeans;

import java.util.List;

import javax.ejb.Local;

import ejb.dto.PacchettoDTO;

@Local
public interface PackManagerBeanLocal {

	/**
	 * crea il pacchetto passato come parametro nel db
	 * 
	 * @param pDTO
	 */
	void creaPacchetto(PacchettoDTO pDTO);

	/**
	 * aggiorna un pacchetto gia' presente nel db
	 * 
	 * @param pDTO
	 */
	void aggiornaPacchetto(PacchettoDTO pDTO);

	List<PacchettoDTO> getAllPacks();

	/**
	 * elimina il pacchetto dal db
	 * 
	 * @param idPacchettoDaEliminare
	 * @return 
	 */
	void eliminaPacchetto(int idPacchettoDaEliminare);

	/**
	 * 
	 * @param idPacchetto
	 * @return il pacchettoDTO se esiste, altrimenti null
	 */
	PacchettoDTO getPackDTOPerId(int idPacchetto);

	/**
	 * restituisce tutti i pacchetti nel db creati dagli impiegati
	 * 
	 * @return
	 */
	List<PacchettoDTO> getAllPacksMadeByAdmins();

	/**
	 * 
	 * @return tutti i pacchetti dell'utente loggato
	 */
	List<PacchettoDTO> getAllPacksOfUserLogged();

	/**
	 * 
	 * @param idPacchetto
	 * @return il pacchettoDTO che soddisfa le date richieste, se esiste,
	 *         altrimenti null
	 */
	List<PacchettoDTO> getPackDTOPerDate(PacchettoDTO pacchetto);

	/**
	 * funzione per salvare un acquisto (transazione: pacchetto - utente)
	 * 
	 * @param pack
	 *            : il pacchetto acquistato
	 */
	void boughtPack(PacchettoDTO pack);

	/**
	 * metodo che permette di modificare un pacchetto
	 * 
	 * @param pDTO
	 */
	void modificaPacchetto(PacchettoDTO pDTO);
}
